#ifndef __MISSION_4_FSM_H
#define __MISSION_4_FSM_H

#ifdef __cplusplus
extern "C" {
#endif

#include "stdint.h"
#include "./Lw_Queue/lw_queue.h"
#include "autocar_global.h"

/********************宏定义********************/

#define QUE_MISSION_4_MSG_LEN	8	/*任务4消息队列的长度*/
#define M4_ANGLE_IN_PLACE_THRE	5	/*任务4偏航角到位阈值次数*/
#define M4_LAST_LINE_INSPECTION	8	/*任务4最后一次巡线次第*/

/********************类型定义********************/

/*任务4状态定义*/
enum mission_4_state
{
	MISSION_4_IDLE,		/*空闲态*/
	MISSION_4_READY,	/*就绪态*/
	M4_WALK_STRAIGHT_LINE,	/*走直线*/
	M4_LINE_INSPECTION,	/*巡黑线*/
	M4_DIRECTION_ADJUST,	/*调整小车方向*/
};

/********************全局变量声明********************/
extern lwq_t mission_4_fsm_que; /*任务4状态机的消息队列*/
extern state_machine_t mission_4_fsm; /*任务4状态机*/

void mission_4_fsm_init(void);
void mission_4_fsm_dispatch(state_machine_t* me, param_event_t* e);

#ifdef __cplusplus
}
#endif

#endif
